package com.zp.self.module.level_4_算法练习.数据结构.String;

/**
 * @author By ZengPeng
 */
public class 自定义_修仙者境界 {
    //测试
    public static void main(String[] args) {

        System.out.println(new 自定义_修仙者境界().getLevel(84113));
//        System.out.println(new 自定义_修仙者境界().getLevel(20345));
//        System.out.println(new 自定义_修仙者境界().getLevel(67345));
//        System.out.println(new 自定义_修仙者境界().getLevel(2099));
//        System.out.println(new 自定义_修仙者境界().getLevel(85706));
//        System.out.println(new 自定义_修仙者境界().getLevel(185706));
//        System.out.println(new 自定义_修仙者境界().getLevel(-1));
    }

    /**
     题目：传入当前玩家的力扣排名,输出玩家的编码境界，规则如下：
         rank>= 100000名开外  凡人
         rank>= 9万+ x千:练气期（10-x）层
         rank>= 8万+ x千:筑基期（10-x）层
         rank>= 7万+ 结丹期
         rank>= 6万+ 元婴期
         rank>= 5万+ 化神期
         rank>= 4万+ 炼虚期
         rank>= 3万+ 合体期
         rank>= 2万+ 大乘期
         rank>= 1万+ 渡劫期
         rank<  1万 天选之人
         rank<  1   凡人

     示例 1：
     输入：rank = 67345
     输出：[元婴初期]💕

     示例 2：
     输入：rank = 85706
     输出：[筑基中期]💜

     分析：【P 💜】
     1. 分析：判断过多 switch优余if
             优化：创建数组存储每个余数对应的境界,然后根据分数，直接取余10000，得到余数。

     边界值 & 注意点：
     1.
     **/
    String[] level = new String[]{"天选之人","渡劫","大乘","合体","炼虚","化神","元婴","结丹","筑基","练气"};
    String[] level_gdrade = new String[]{"圆满","后期","中期","初期"};
    String[] level_falg =  new String[]{"💖","💔","💝","💞","💓","💗","💕","💛","💜","💚"};
    public String getLevel(int rank) {
        if(rank>=100000 ||rank<1) return "凡人";
        int grade = (int) Math.ceil((rank / 1000 % 10 / 3d));
        rank =rank/10000;
        return "["+level[rank]+level_gdrade[grade] +"]"+level_falg[rank];
    }

   /* if(rank>=100000 ||rank<1) return "凡人";
        switch (rank) {
        case 110000:
            break;
        case 1:
            break;
        case 2:
            break;
        default:
    }*/
}
